﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MAPDavy.Repository;
using MAPDavy.Entities; 
using Microsoft.Practices.Unity;
using DocumentFormat.OpenXml.Spreadsheet;

namespace MAPDavy.BusinessLogic
{
    public class AnioLectivoBL:IAnioLectivoBL
    {
        [Dependency]
        public IAnioLectivoRepository  AnioLectivoRepository { get; set; }

        public List<AnioLectivo> GetAllFromAnioLectivo()
        {
            return AnioLectivoRepository.GetAllFromAnioLectivo(); 
        }

        public AnioLectivo GetAnioLectivoByAnio(string anio)
        {
            return AnioLectivoRepository.GetAnioLectivoByAnio(anio); 
        }

        public void RegistrarAnioLectivo(AnioLectivo anio)
        {
            AnioLectivoRepository.RegistrarAnioLectivo(anio);  
        }

        public void AddAnioLectivo(AnioLectivo anio)
        {
            var existe = AnioLectivoRepository.GetAnioLectivoByAnio(anio.Anio);
 
            if (existe == null)
            {
                AnioLectivoRepository.AddAnioLectivo(anio);   
            }
            else
            {
                throw new Exception("Este año ya esta registrado");   
            } 
            
        }

        public void EditAnioLectivo(AnioLectivo anio)
        {
            AnioLectivoRepository.EditAnioLectivo(anio);  
        }

        public void DeleteAnioLectivo(string anio)
        {
            AnioLectivoRepository.DeleteAnioLectivo(anio);  
        }


        public bool CanDelete(string anio)
        {
           return AnioLectivoRepository.CanDelete(anio); 
            //throw new NotImplementedException();
        }


        public List<MAPTemplate> RetrieveMAPS(Worksheet worksheet, SharedStringTable sharedStringTable)
        {
            return Library.RetrieveMAPS(worksheet, sharedStringTable); 
        }
    }
}
